package com.example.mvvmcore.view;

import android.content.Intent;
import android.os.Bundle;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.example.common.utils.StateBarUtils;
import com.example.mvvmcore.R;

public abstract class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //处理沉浸式状态栏
        StateBarUtils.getInstance().doStateBar(this,getStateBarColor());

        initEnv();
        initView();
        initData();
        initEvent();
    }
    /**
     * 初始化环境
     */
    protected void initEnv() {

    }
    /**
     * 设置默认的状态栏底色 可以由子类复写
     * @return
     */
    protected int getStateBarColor() {
        return R.color.white;
    }
    /**
     * 主要放置事件注册
     */
    protected void initEvent() {}
    /**
     * 初始化页面数据
     */
    protected abstract void initData();
    /**
     * 初始化视图 主要是findViewById
     */
    protected void initView() {

    }
    /**
     * 跳转到指定activity
     * @param target
     */
    protected void routeTargetActivity(Class<?> target)
    {
        startActivity(new Intent(this,target));
    }

    /**
     * 跳转到指定的activity
     * @param target
     * @param params 携带的参数
     */
    protected void routeTargetActivity(Class<?> target,Bundle params){
        Intent intent=new Intent(this,target);
        intent.putExtra("params",params);
        startActivity(intent);
    }

    /**
     * 提示消息
     * @param msg
     */
    public void showMsg(String msg){
        Toast.makeText(this, msg, Toast.LENGTH_SHORT).show();
    }

    /**
     * 获取String资源
     * @param stringId
     * @return
     */
    protected String getStringFormResource(int stringId){
        return getResources().getString(stringId);
    }


}
